using Fcdbas.WinUI.Design;
using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Drawing.Design;
namespace Fcdbas.WinUI.Windows
{
	[DesignerSerializer(typeof(SalNamedPropertiesSerializer), typeof(CodeDomSerializer)), Editor(typeof(SalNamedPropertiesEditor), typeof(UITypeEditor))]
	public class SalNamedProperties : System.Collections.IList, System.Collections.IDictionary, System.Collections.ICollection, System.Collections.IEnumerable
	{
		private System.Collections.Hashtable m_items = CollectionsUtil.CreateCaseInsensitiveHashtable();
		public string this[string key]
		{
			get
			{
				return (string)this.m_items[key];
			}
			set
			{
				this.m_items[key] = value;
			}
		}
		public int Count
		{
			get
			{
				return this.m_items.Count;
			}
		}
		bool System.Collections.IList.IsReadOnly
		{
			get
			{
				return false;
			}
		}
		object System.Collections.IList.this[int index]
		{
			get
			{
				throw new System.NotSupportedException();
			}
			set
			{
				throw new System.NotSupportedException();
			}
		}
		bool System.Collections.IList.IsFixedSize
		{
			get
			{
				return false;
			}
		}
		object System.Collections.ICollection.SyncRoot
		{
			get
			{
				return this.m_items.SyncRoot;
			}
		}
		bool System.Collections.ICollection.IsSynchronized
		{
			get
			{
				return this.m_items.IsSynchronized;
			}
		}
		public System.Collections.ICollection Values
		{
			get
			{
				return this.m_items.Values;
			}
		}
		public System.Collections.ICollection Keys
		{
			get
			{
				return this.m_items.Keys;
			}
		}
		bool System.Collections.IDictionary.IsFixedSize
		{
			get
			{
				return this.m_items.IsFixedSize;
			}
		}
		object System.Collections.IDictionary.this[object key]
		{
			get
			{
				return this[key.ToString()];
			}
			set
			{
				this[key.ToString()] = value.ToString();
			}
		}
		bool System.Collections.IDictionary.IsReadOnly
		{
			get
			{
				return false;
			}
		}
		public void Put(string key, string value)
		{
			this.m_items[key] = value;
		}
		public virtual void Add(string key, string value)
		{
			this.m_items.Add(key, value);
		}
		public void Remove(string key)
		{
			this.m_items.Remove(key);
		}
		public void Clear()
		{
			this.m_items.Clear();
		}
		public void CopyTo(System.Array array, int index)
		{
			this.m_items.CopyTo(array, index);
		}
		public System.Collections.IEnumerator GetEnumerator()
		{
			return this.m_items.GetEnumerator();
		}
		public bool Contains(string key)
		{
			return this.m_items.ContainsKey(key);
		}
		void System.Collections.IList.RemoveAt(int index)
		{
			throw new System.NotSupportedException();
		}
		void System.Collections.IList.Remove(object value)
		{
			this.m_items.Remove(value.ToString());
		}
		void System.Collections.IList.Insert(int index, object value)
		{
			throw new System.NotSupportedException();
		}
		bool System.Collections.IList.Contains(object value)
		{
			return this.Contains(value.ToString());
		}
		int System.Collections.IList.IndexOf(object value)
		{
			throw new System.NotSupportedException();
		}
		int System.Collections.IList.Add(object value)
		{
			throw new System.NotSupportedException();
		}
		void System.Collections.IDictionary.Add(object key, object value)
		{
			this.Add(key.ToString(), value.ToString());
		}
		bool System.Collections.IDictionary.Contains(object key)
		{
			return this.Contains(key.ToString());
		}
		void System.Collections.IDictionary.Remove(object key)
		{
			this.Remove(key.ToString());
		}
		System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator()
		{
			return this.m_items.GetEnumerator();
		}
	}
}
